ASP.Net MVC অ্যাপ্লিকেশনগুলোর মধ্যে রাউটিং (Routing) এবং ইউআরএল (URL) ম্যানেজমেন্ট অত্যন্ত গুরুত্বপূর্ণ বিষয়। রাউটিং হলো সেই প্রক্রিয়া, যার মাধ্যমে একটি ইনকামিং HTTP অনুরোধ (Request) সঠিক কন্ট্রোলার এবং অ্যাকশন মেথডে (Action Method) পরিচালিত হয়। ASP.Net MVC-তে রাউটিং সিস্টেম ব্যবহারকারীর অনুরোধের ভিত্তিতে অ্যাপ্লিকেশনটি বিভিন্ন কন্ট্রোলার ও ভিউয়ের মধ্যে সঠিকভাবে ম্যানেজ করে।
রাউটিং হলো একটি প্রক্রিয়া যেখানে ইউআরএল প্যাটার্নের মাধ্যমে বিভিন্ন কন্ট্রোলার এবং অ্যাকশন মেথডকে মেলানো হয়। রাউটিং প্রক্রিয়ার মাধ্যমে ইউআরএল নির্ধারিত কন্ট্রোলারে পৌঁছায় এবং সঠিক অ্যাকশন মেথড কার্যকর হয়।
ASP.Net MVC-তে রাউটিং কনফিগারেশন সাধারণত RouteConfig.cs
ফাইলের মধ্যে থাকে, যা App_Start
ফোল্ডারে অবস্থান করে। এই ফাইলের মাধ্যমে রাউটিং সিস্টেমকে কনফিগার করা হয়।
নিচে একটি উদাহরণ দেয়া হলো, যা কনফিগারেশন ফাইলের মধ্যে ব্যবহার করা হয়:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
এখানে, MapRoute
মেথডের মাধ্যমে রাউটিং প্যাটার্ন কনফিগার করা হয়। এই কনফিগারেশনে আমরা ডিফল্ট কন্ট্রোলার Home
, অ্যাকশন Index
এবং আইডি হিসেবে Optional
প্রদান করেছি।
ASP.Net MVC-তে কাস্টম রাউটিং তৈরি করা খুব সহজ। আপনি যদি কোনো বিশেষ রাউটিং প্যাটার্ন চান, তবে MapRoute
মেথডের মাধ্যমে নতুন রাউট তৈরি করতে পারেন। নিচে একটি কাস্টম রাউটের উদাহরণ দেয়া হলো:
routes.MapRoute(
name: "ProductDetails",
url: "Product/{productId}/{category}",
defaults: new { controller = "Product", action = "Details" }
);
এখানে Product/{productId}/{category}
রাউট প্যাটার্নের মাধ্যমে আমরা Product
কন্ট্রোলারে Details
অ্যাকশন মেথডে পাঠাচ্ছি, যেখানে productId
এবং category
ডাইনামিক প্যারামিটার হিসেবে কাজ করবে।
Attribute Routing একটি নতুন বৈশিষ্ট্য, যা ASP.Net MVC 5 এ অন্তর্ভুক্ত করা হয়েছে। এই রাউটিং পদ্ধতিতে, আমরা কন্ট্রোলার এবং অ্যাকশন মেথডের উপর সরাসরি রাউটিং প্যাটার্ন অ্যাট্রিবিউট হিসেবে নির্ধারণ করতে পারি।
public class ProductController : Controller
{
[Route("Product/Details/{id}")]
public ActionResult Details(int id)
{
return View();
}
}
এখানে, Route
অ্যাট্রিবিউটের মাধ্যমে Details
অ্যাকশন মেথডের জন্য URL রাউট নির্ধারণ করা হয়েছে।
Product/{productId}/{category}
এর মতো।{controller}/{action}/{id}
, যেটি বেশিরভাগ অ্যাপ্লিকেশনগুলোর জন্য কার্যকরী।ASP.Net MVC-তে রাউটিং এবং ইউআরএল ম্যানেজমেন্ট অত্যন্ত গুরুত্বপূর্ণ। এটি অ্যাপ্লিকেশনের কন্ট্রোলার এবং অ্যাকশন মেথডের মধ্যে সঠিক যোগাযোগ স্থাপন করে। রাউটিং কনফিগারেশন, কাস্টম রাউটিং এবং অ্যাট্রিবিউট রাউটিং ব্যবহার করে আপনি অ্যাপ্লিকেশনের ইউআরএল কাঠামো কাস্টমাইজ করতে পারেন, যা SEO-বান্ধব এবং ব্যবহারকারীর জন্য সহজবোধ্য হয়।
ASP.Net MVC রাউটিং সিস্টেম একটি গুরুত্বপূর্ণ উপাদান যা URL গুলিকে অ্যাপ্লিকেশনের কন্ট্রোলার এবং অ্যাকশন মেথডের সাথে যুক্ত করে। রাউটিং অ্যাপ্লিকেশনের ইউআরএল-এর কাঠামো নির্ধারণ করে, যা সঠিক কন্ট্রোলার এবং অ্যাকশন মেথডকে ট্রিগার করে। রাউটিং কনফিগারেশনটি মূলত RouteConfig.cs
ফাইলের মাধ্যমে কনফিগার করা হয়, যা অ্যাপ্লিকেশনের রুট পর্যায়ে এক্সিকিউট হয়।
ASP.Net MVC একটি URL রাউটিং সিস্টেম ব্যবহার করে, যা অ্যাপ্লিকেশন URL গুলিকে কন্ট্রোলার এবং অ্যাকশন মেথডের সাথে যুক্ত করে। প্রতিটি URL প্যাটার্ন একটি বা একাধিক প্যারামিটার ধারণ করতে পারে, যা কন্ট্রোলার এবং অ্যাকশন মেথডে পাঠানো হয়।
ASP.Net MVC-তে ডিফল্ট রাউটিং কনফিগারেশন সাধারণত নিম্নলিখিতভাবে থাকে:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
ASP.Net MVC রাউটিং কনফিগারেশন সাধারণত তিনটি অংশে বিভক্ত থাকে:
1. Controller
রাউটিং URL এ কন্ট্রোলারের নাম উল্লেখ করে। এটি সেই কন্ট্রোলারটি নির্দেশ করে যা ব্যবহারকারীর অনুরোধ পরিচালনা করবে।
2. Action
অ্যাকশন হলো কন্ট্রোলারের একটি মেথড যা বিশেষভাবে URL এর অংশ হিসেবে ব্যবহৃত হয়। এটি HTTP অনুরোধের প্রক্রিয়াকরণের জন্য দায়ী।
3. Parameters (id)
এটি একটি ঐচ্ছিক প্যারামিটার হতে পারে, যা URL এর মধ্যে পাঠানো হয়। এই প্যারামিটার কন্ট্রোলারের অ্যাকশন মেথডে প্রেরিত হয় এবং প্রয়োজনীয় ডেটা সরবরাহ করে।
ASP.Net MVC রাউটিং সিস্টেম কাস্টমাইজ করা যায়, যাতে বিশেষভাবে নির্দিষ্ট URL কাঠামো তৈরি করা যায়। উদাহরণস্বরূপ, একটি কাস্টম রাউটিং কনফিগারেশন নিম্নরূপ হতে পারে:
routes.MapRoute(
name: "ProductDetails",
url: "product/{category}/{id}",
defaults: new { controller = "Product", action = "Details" }
);
এই রাউটিং কনফিগারেশনটি product/{category}/{id}
এর মত URL গুলি ধরে এবং ProductController
এর Details
অ্যাকশন মেথডে পাঠায়।
ধরা যাক, আমাদের একটি ProductController
আছে এবং আমরা চাই যে /product/{category}/{id}
URL প্যাটার্নের মাধ্যমে নির্দিষ্ট পণ্য ক্যাটাগরি এবং আইডি নিয়ে ডেটা রিট্রাইভ করা হোক। এ ক্ষেত্রে কাস্টম রাউটিং কনফিগারেশন হবে:
public class ProductController : Controller
{
public ActionResult Details(string category, int id)
{
// ক্যাটাগরি এবং আইডি অনুযায়ী ডেটা রিট্রাইভ
return View();
}
}
এখানে, {category}
এবং {id}
URL প্যারামিটার গুলি Details
অ্যাকশন মেথডে পাঠানো হবে, যেখানে তাদের ব্যবহার করা যাবে।
ASP.Net MVC 5 থেকে শুরু করে, রাউটিং সিস্টেমে Attribute Routing ব্যবহার করা যেতে পারে, যার মাধ্যমে কন্ট্রোলারের অ্যাকশন মেথডের উপরে অ্যানোটেশন ব্যবহার করে URL কনফিগার করা যায়।
Attribute Routing এর উদাহরণ:
[Route("product/{category}/{id}")]
public ActionResult Details(string category, int id)
{
// ক্যাটাগরি এবং আইডি অনুযায়ী ডেটা রিট্রাইভ
return View();
}
এই রাউটিং কনফিগারেশনটি কন্ট্রোলারের অ্যাকশন মেথডের সাথে সম্পর্কিত URL কাস্টমাইজ করার জন্য আরও সুবিধাজনক এবং সহজ।
/product/{category}/{id}
।id=1
এর পরিবর্তে সরাসরি product/1
ব্যবহার করা।UrlParameter.Optional
নির্ধারণ করা যেতে পারে।ASP.Net MVC রাউটিং কনফিগারেশন অ্যাপ্লিকেশনের URL কাঠামো নির্ধারণে একটি অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে। কাস্টম রাউটিং, Attribute Routing, এবং অন্যান্য রাউটিং কনফিগারেশন টেকনিকগুলি ব্যবহার করে ডেভেলপাররা তাদের অ্যাপ্লিকেশনের URL গুলি নিয়ন্ত্রণ করতে পারেন, যা SEO, ব্যবহারকারীর অভিজ্ঞতা এবং অ্যাপ্লিকেশনের কাঠামোর জন্য গুরুত্বপূর্ণ।
ASP.Net MVC তে রাউটিং একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, যা URL এবং কন্ট্রোলার অ্যাকশন মেথডের মধ্যে সম্পর্ক স্থাপন করে। সাধারণভাবে, ASP.Net MVC ডিফল্ট রাউটিং কনফিগারেশন ব্যবহার করে, তবে প্রয়োজন অনুযায়ী কাস্টম রাউটিং তৈরি করা সম্ভব। কাস্টম রাউটিংয়ের মাধ্যমে আপনি URL-এর কাঠামো নিয়ন্ত্রণ করতে পারেন এবং এটি অ্যাপ্লিকেশনের প্রয়োজন অনুযায়ী কাস্টমাইজ করতে পারেন।
ASP.Net MVC অ্যাপ্লিকেশন তৈরি করার সময়, RouteConfig.cs
ফাইলটি রাউটিং কনফিগারেশন সেট করার জন্য ব্যবহৃত হয়। এই ফাইলটি App_Start
ফোল্ডারে পাওয়া যায় এবং এটি কাস্টম রাউটিং কনফিগারেশন যোগ করার জন্য আদর্শ স্থান।
প্রথমে ASP.Net MVC অ্যাপ্লিকেশনটি ডিফল্টভাবে একটি রাউট কনফিগারেশন ব্যবহার করে যা সাধারণত RouteConfig.cs
ফাইলে থাকে। এটি কিভাবে কাজ করে:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
উপরের কোডে, ডিফল্ট রাউট কনফিগারেশনটি {controller}/{action}/{id}
আকারে URL এর কাঠামো নির্ধারণ করে। এখানে controller
, action
, এবং id
প্লেসহোল্ডার হিসেবে ব্যবহৃত হয়েছে।
কাস্টম রাউট তৈরি করার জন্য আপনাকে RegisterRoutes
মেথডে নতুন রাউট কনফিগারেশন যোগ করতে হবে। উদাহরণস্বরূপ, যদি আপনি চান যে URL-তে product/details/{id}
এ গিয়ে একটি প্রোডাক্টের বিস্তারিত দেখানো হোক, তাহলে নিম্নলিখিত কোড ব্যবহার করতে হবে:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// কাস্টম রাউট তৈরি
routes.MapRoute(
name: "ProductDetails",
url: "product/details/{id}",
defaults: new { controller = "Product", action = "Details" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
এখানে, product/details/{id}
রাউটটি ProductController
এর Details
অ্যাকশন মেথডে নির্দেশ করবে, এবং {id}
URL প্যারামিটারটি কন্ট্রোলারে পাস হবে।
blog/{year}/{month}
রাউটটি একটি ব্লগ পোস্ট দেখাবে, তাহলে আপনি নিম্নলিখিত কনফিগারেশন ব্যবহার করতে পারেন:routes.MapRoute(
name: "BlogPost",
url: "blog/{year}/{month}",
defaults: new { controller = "Blog", action = "Post" }
);
এখানে, {year}
এবং {month}
প্যারামিটার হিসাবে কাজ করবে।
ASP.Net MVC তে কাস্টম রাউটিং ব্যবহারের মাধ্যমে আপনি URL-এর কাঠামো নিয়ন্ত্রণ করতে পারেন এবং অ্যাপ্লিকেশনকে আপনার প্রয়োজন অনুযায়ী কাস্টমাইজ করতে পারেন। রাউট কনফিগারেশনটি RouteConfig.cs
ফাইলে করা হয় এবং বিভিন্ন রাউট তৈরি করতে এটি সহজ ও ফ্লেক্সিবল। কাস্টম রাউটিং অ্যাপ্লিকেশনের পারফরম্যান্স এবং SEO-তে সাহায্য করতে পারে, বিশেষ করে যখন আপনি পরিষ্কার এবং কাঙ্খিত URL চান।
ASP.Net MVC-তে Attribute Routing হল একটি ফিচার যা ডেভেলপারদের নির্দিষ্ট অ্যাকশন মেথডগুলোর জন্য কাস্টম URL প্যাটার্ন ডিফাইন করতে সহায়ক। এটি সাধারণত Controller এবং Action মেথডের উপরে Attributes অ্যাটাচ করে রাউটিং কনফিগারেশন করতে ব্যবহার করা হয়। Attribute Routing দ্বারা রাউটিং কনফিগারেশন সহজ ও স্বচ্ছ হয়, এবং এতে URL স্ট্রাকচারকে আরও ফ্লেক্সিবল ও পরিষ্কারভাবে কাস্টমাইজ করা যায়।
Attribute Routing চালু করার জন্য RouteConfig.cs ফাইলে routes.MapMvcAttributeRoutes();
কল করতে হয়। একবার এটি কনফিগার করা হলে, আপনি অ্যাকশন মেথডের উপর Route অ্যাট্রিবিউট ব্যবহার করতে পারেন।
public class ProductsController : Controller
{
[Route("products/{id}")]
public ActionResult Details(int id)
{
// ডেটা প্রসেসিং এবং ভিউ রিটার্ন
return View();
}
[Route("products/all")]
public ActionResult AllProducts()
{
// সব প্রোডাক্টের তালিকা দেখানোর জন্য কোড
return View();
}
}
উপরের উদাহরণে, Details অ্যাকশন মেথডের জন্য একটি কাস্টম URL products/{id}
নির্ধারণ করা হয়েছে, যেখানে id
হল ডাইনামিক প্যারামিটার। আর AllProducts অ্যাকশন মেথডে products/all
URL নির্ধারণ করা হয়েছে।
[Route("products/{category}/{id}")]
public ActionResult CategoryDetails(string category, int id)
{
// ডেটা প্রসেসিং
return View();
}
এখানে, URL-এ category এবং id দুটি প্যারামিটার নির্ধারণ করা হয়েছে।
[Route("products/{id}")]
[HttpPost]
public ActionResult UpdateProduct(int id)
{
// পণ্যের তথ্য আপডেট
return View();
}
এই ক্ষেত্রে, [HttpPost] অ্যাট্রিবিউট দ্বারা শুধু POST অনুরোধে UpdateProduct অ্যাকশনটি কল হবে।
[Route("products/{id:int}")]
public ActionResult ProductById(int id)
{
// শুধুমাত্র পূর্ণসংখ্যা টাইপের id গ্রহণ করা হবে
return View();
}
এখানে int টাইপের প্যারামিটার নির্দিষ্ট করা হয়েছে, যাতে URL তে শুধুমাত্র পূর্ণসংখ্যা গ্রহণ করা হয়।
ASP.Net MVC তে Attribute Routing ব্যবহার করতে, প্রথমে RouteConfig.cs ফাইলে নিচের কোডটি যোগ করুন:
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapMvcAttributeRoutes(); // Attribute Routing চালু করা
// অন্যান্য রাউটিং কনফিগারেশন...
}
Attribute Routing একটি অত্যন্ত শক্তিশালী এবং ফ্লেক্সিবল ফিচার যা ডেভেলপারদের কাস্টম URL রাউটিং কনফিগারেশন তৈরি করতে সহায়ক। এটি URL গুলিকে আরও পরিষ্কার, অর্থপূর্ণ এবং ডাইনামিক করে তোলে। Attribute Routing এর সুবিধাগুলি যেমন সহজ কনফিগারেশন, স্পষ্ট URL প্যাটার্ন, এবং কাস্টম URL রাউটিং আধুনিক অ্যাপ্লিকেশন ডেভেলপমেন্টে বিশেষভাবে কার্যকর।
ASP.Net MVC-তে রাউটিং একটি অত্যন্ত গুরুত্বপূর্ণ অংশ, কারণ এটি ওয়েব অ্যাপ্লিকেশনের URL গঠন এবং কীভাবে কন্ট্রোলার এবং অ্যাকশন মেথডের সাথে যুক্ত হবে তা নির্ধারণ করে। ASP.Net MVC রাউটিং সিস্টেমের মাধ্যমে আপনি URL কনফিগারেশন এবং কাস্টমাইজেশন করতে পারেন, যা SEO-বান্ধব এবং সহজে ব্যবহারের উপযোগী।
নিচে ASP.Net MVC-তে রাউটিং কনভেনশন এবং কিছু বেস্ট প্র্যাকটিস নিয়ে আলোচনা করা হলো, যা আপনার অ্যাপ্লিকেশনকে আরও কার্যকর এবং সুসংগঠিত করতে সহায়ক।
ASP.Net MVC রাউটিং কনভেনশন ব্যবহার করে ডিফল্ট রাউটিং ব্যবস্থা প্রতিষ্ঠিত থাকে। এটি সাধারণত RouteConfig.cs ফাইলে কনফিগার করা হয়।
রাউটিং কনভেনশন ডিফাইন করা হয় মূলত কন্ট্রোলার, অ্যাকশন, এবং ভিউ-এই তিনটি অংশে। একটি ডিফল্ট রাউট কনফিগারেশন দেখতে নিচের মতো হতে পারে:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
এখানে:
1. কাস্টম রাউটিং (Custom Routing)
ASP.Net MVC-তে কাস্টম রাউট তৈরি করা যায় যাতে URL গঠন আরও নির্দিষ্ট এবং মানানসই হয়। উদাহরণস্বরূপ, একটি রাউট তৈরি করা যেতে পারে যেখানে কন্ট্রোলারের নাম এবং অ্যাকশন মেথডের পর প্যারামিটার পাঠানো হবে:
routes.MapRoute(
name: "ProductDetails",
url: "products/{id}/{category}",
defaults: new { controller = "Products", action = "Details" }
);
এখানে products/{id}/{category} URL প্যাটার্নটি কাস্টমাইজ করা হয়েছে। এটি আরও নির্দিষ্ট এবং SEO-বান্ধব।
2. কাস্টম অ্যাকশন এবং প্যারামিটার
URL এর অংশের মধ্যে কাস্টম প্যারামিটার ব্যবহার করে অ্যাকশন মেথডে আরও তথ্য পাঠানো সম্ভব:
routes.MapRoute(
name: "Article",
url: "article/{title}/{date}",
defaults: new { controller = "Articles", action = "Show" }
);
এখানে title এবং date কাস্টম প্যারামিটার হিসাবে URL-এ পাঠানো হয়েছে, যা পরে কন্ট্রোলারে অ্যাকশন মেথডে ব্যবহৃত হবে।
1. সোজা এবং পরিষ্কার URL ব্যবহার করুন
SEO-এর জন্য সোজা এবং পরিষ্কার URL খুবই গুরুত্বপূর্ণ। কনভেনশনাল রাউটিং ব্যবহার করে URL গঠন করা সহজ, কিন্তু যখন কাস্টম রাউটিং ব্যবহার করবেন, তখন URL সোজা এবং পরিষ্কার রাখার চেষ্টা করুন।
2. HTTP GET এবং POST রাউটিং আলাদা করুন
HTTP GET এবং POST রাউটিং আলাদা করে প্রয়োগ করুন। সাধারণত, GET রাউটিংয়ের মাধ্যমে তথ্য দেখানো হয় এবং POST রাউটিংয়ের মাধ্যমে তথ্য প্রেরণ করা হয়। উদাহরণস্বরূপ:
routes.MapRoute(
name: "CreateArticle",
url: "article/create",
defaults: new { controller = "Articles", action = "Create" }
);
এটি POST রিকোয়েস্টের জন্য আলাদা করে পদ্ধতি তৈরি করতে সহায়ক।
3. রাউটিং কনফিগারেশনে নামকরণ কনভেনশন অনুসরণ করুন
এটি খুবই গুরুত্বপূর্ণ যে আপনি রাউটিং কনফিগারেশনে একটি ধারাবাহিক নামকরণ প্যাটার্ন অনুসরণ করবেন। এটি কোডের রক্ষণাবেক্ষণ সহজ করবে এবং অন্য ডেভেলপারদের জন্য সুবিধাজনক হবে।
4. রাউটিং কনফিগারেশনে বাধা সৃষ্টি করবেন না
এটি নিশ্চিত করুন যে কোনও রাউট কনফিগারেশন অন্যটি প্রতিস্থাপন বা ব্লক না করে। যদি কাস্টম রাউটিং ব্যবহার করা হয়, তাহলে তা যেন অন্যান্য রাউটের সঙ্গে টেকসই থাকে।
5. রাউটিং কনফিগারেশন ফাইল সহজে পর্যালোচনা করা যায় এমন রাখুন
RouteConfig.cs ফাইলটি পরিষ্কার এবং সহজে পড়া যায় এমন রাখতে চেষ্টা করুন, যাতে ভবিষ্যতে কোনো সমস্যা হলে দ্রুত ঠিক করা যায়।
6. URL এর সঠিক প্যারামিটার যাচাই করুন
রাউটিং প্যারামিটারগুলো সঠিকভাবে যাচাই করুন, যাতে রাউটিং প্রক্রিয়া ত্রুটির সম্মুখীন না হয়। URL-এর প্যারামিটার সঠিক কিনা তা নিশ্চিত করতে ভ্যালিডেশন পদ্ধতি ব্যবহার করতে পারেন।
রাউটিং কনভেনশন এবং বেস্ট প্র্যাকটিস গুলি ASP.Net MVC অ্যাপ্লিকেশনে URL কনফিগারেশন আরও সংগঠিত এবং SEO-বান্ধব করতে সহায়ক। কাস্টম রাউটিং ব্যবহার করে URL গঠন এবং কনফিগারেশন সহজে কাস্টমাইজ করা যেতে পারে, তবে URL সোজা ও পরিষ্কার রাখা, এবং ধারাবাহিক নামকরণ প্যাটার্ন অনুসরণ করা গুরুত্বপূর্ণ।
common.read_more